fix(prose-tests): the verdict names only the model the record names#567
Merged
Merged
Conversation
This was referenced Jul 26, 2026
Open
leeovery
force-pushed
the
test/prose-observable-walks-only
branch
from
July 27, 2026 14:49
430c8dc to
57d99f8
Compare
leeovery
force-pushed
the
fix/prose-verdict-states-only-what-is-recorded
branch
from
July 27, 2026 14:49
cfcff30 to
744a17c
Compare
leeovery
force-pushed
the
test/prose-observable-walks-only
branch
from
July 27, 2026 14:51
57d99f8 to
cf58af4
Compare
leeovery
force-pushed
the
fix/prose-verdict-states-only-what-is-recorded
branch
from
July 27, 2026 14:51
744a17c to
02a55bc
Compare
leeovery
force-pushed
the
test/prose-observable-walks-only
branch
from
July 27, 2026 15:42
cf58af4 to
ebd050d
Compare
leeovery
force-pushed
the
fix/prose-verdict-states-only-what-is-recorded
branch
from
July 27, 2026 15:42
02a55bc to
f0ec7c5
Compare
leeovery
force-pushed
the
test/prose-observable-walks-only
branch
from
July 27, 2026 15:44
ebd050d to
845a7f4
Compare
leeovery
force-pushed
the
fix/prose-verdict-states-only-what-is-recorded
branch
from
July 27, 2026 15:44
f0ec7c5 to
ee0c976
Compare
leeovery
force-pushed
the
test/prose-observable-walks-only
branch
from
July 27, 2026 15:46
845a7f4 to
c03f47a
Compare
leeovery
force-pushed
the
fix/prose-verdict-states-only-what-is-recorded
branch
from
July 27, 2026 15:46
ee0c976 to
1584692
Compare
leeovery
force-pushed
the
test/prose-observable-walks-only
branch
from
July 27, 2026 15:47
c03f47a to
38f49ff
Compare
leeovery
force-pushed
the
fix/prose-verdict-states-only-what-is-recorded
branch
from
July 27, 2026 15:47
1584692 to
4695ffa
Compare
leeovery
force-pushed
the
test/prose-observable-walks-only
branch
from
July 27, 2026 15:49
38f49ff to
0ed3ffc
Compare
leeovery
force-pushed
the
fix/prose-verdict-states-only-what-is-recorded
branch
from
July 27, 2026 15:49
4695ffa to
cfb4c75
Compare
leeovery
force-pushed
the
test/prose-observable-walks-only
branch
from
July 27, 2026 15:50
0ed3ffc to
387bb5c
Compare
leeovery
force-pushed
the
fix/prose-verdict-states-only-what-is-recorded
branch
from
July 27, 2026 15:50
cfb4c75 to
d82bb34
Compare
leeovery
force-pushed
the
test/prose-observable-walks-only
branch
from
July 27, 2026 15:52
387bb5c to
6d7d97a
Compare
leeovery
force-pushed
the
fix/prose-verdict-states-only-what-is-recorded
branch
from
July 27, 2026 15:52
d82bb34 to
b5cef3d
Compare
leeovery
force-pushed
the
test/prose-observable-walks-only
branch
from
July 27, 2026 15:53
6d7d97a to
ed93a3a
Compare
leeovery
force-pushed
the
fix/prose-verdict-states-only-what-is-recorded
branch
from
July 27, 2026 15:53
b5cef3d to
7b9d9c3
Compare
leeovery
force-pushed
the
test/prose-observable-walks-only
branch
from
July 27, 2026 15:54
ed93a3a to
aca3c67
Compare
leeovery
force-pushed
the
fix/prose-verdict-states-only-what-is-recorded
branch
from
July 27, 2026 15:54
7b9d9c3 to
ca28506
Compare
leeovery
force-pushed
the
test/prose-observable-walks-only
branch
from
July 27, 2026 15:55
aca3c67 to
48f12e7
Compare
leeovery
force-pushed
the
fix/prose-verdict-states-only-what-is-recorded
branch
from
July 27, 2026 15:55
ca28506 to
3b9b0b0
Compare
leeovery
force-pushed
the
test/prose-observable-walks-only
branch
from
July 27, 2026 15:57
48f12e7 to
2ee5855
Compare
leeovery
force-pushed
the
fix/prose-verdict-states-only-what-is-recorded
branch
from
July 27, 2026 15:57
3b9b0b0 to
8378abd
Compare
Deliberately breaking a skill to prove the harness catches it turned up something else. The orchestrator returned "first walk claude-sonnet-5, escalated rerun claude-opus-5 (asserter: claude-sonnet-5 both times)". The asserter was not on Sonnet. Every asserter transcript from that run is claude-opus-5, with zero tool calls, exactly as contracted; the Sonnet agents were the orchestrators, which are Sonnet by design. Nor could the orchestrator have known either way — the only model in the record comes off the walker's SubagentStop line, and no agent's own model appears anywhere it can read. So a slot that exists to carry a fact carried a guess, in the one field whose entire purpose is catching a run that silently used the wrong model. The MODEL line now states the walking model and nothing else. The break itself was caught cleanly and reverted uncommitted: calls_in_order failed naming the exact defect while calls_include passed, which is the gap ordering was added for; engine_before_write reported N/A rather than a green tick; and the escalation ran for the first time, Opus reproducing the Sonnet failure into a confirmed finding. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
leeovery
force-pushed
the
fix/prose-verdict-states-only-what-is-recorded
branch
from
July 27, 2026 15:58
8378abd to
1cea24e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Found by deliberately breaking a skill to prove the harness catches it. It did — and turned up something else on the way.
The orchestrator returned:
The asserter was not on Sonnet. Every asserter transcript from that run is
claude-opus-5with zero tool calls, exactly as contracted; the Sonnet agents were the orchestrators, which are Sonnet by design.And it had no way to know either way. The only model anywhere in the record comes off the walker's
SubagentStopline. No agent's own model appears anywhere it can read.So a slot that exists to carry a fact carried a guess — in the one field whose whole purpose is catching a run that silently used the wrong model.
MODEL:now states the walking model and nothing else.The break test itself (reverted, never committed)
Moved
render phase-noteabove the status read inworkflow-investigation-entry— a plausible "announce the phase first" reordering. Result:Every layer behaved:
calls_in_ordercaught it whilecalls_includepassed — both calls ran, just out of order. Precisely the gap ordering was added for, now proven on real prose rather than a unit test.engine_before_writereportedN/A, not a misleading green tick.CHECKSline surfaced the computed facts instead of leaving them to be inferred from a green overall verdict.Test plan
🤖 Generated with Claude Code
Stack